<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 再这个CDN VUE精简版源码学习工具里面 对import支持不够好 -->
</head>

<body>
    <div id="app">
        <div>
            <header1></header1>
            <div class="main">
                <h1>这是中间的内容 </h1>
                <h1>这是中间的内容 </h1>
                <h1>这是中间的内容 </h1>
                <h1>这是中间的内容 </h1>
                <h1>这是中间的内容 </h1>
            </div>
            <footer1></footer1>

        </div>
    </div>

    <script>
        // import header1 from './57header1.html'
        // 全局组件 定义Vue.component
        // 1 疑问  为什么要写在一个页面 因为不支持import 需要脚手架中的babel转译器 ES6 ->ES5
        // 所以尤雨溪提供了一种不需要import语法 也能模拟多个页面的 程序效果  
        // 2 疑问2 外来组件的data为什么要当成函数返回回来!!!?
        Vue.component('header1', {
            data: function () {
                return {
                    name: '小米官网顶部'
                }
            },
         
            beforeMount() { },
            created() { },
            mounted() { },
            beforeUpdate() { },
            updated() { },
            beforeDestroy() { },
            destroyed() { },
            template: '<div>{{name}}</div>'
        })

        // 局部组件  
        // 注意局部组件要求注册 
        var footer1 = {
            data: function () {
                return {
                    name: '小米官网底部'
                }
            },
            beforeMount() { },
            created() { },
            mounted() { },
            beforeUpdate() { },
            updated() { },
            beforeDestroy() { },
            destroyed() { },
            template: '<div>{{name}}</div>'
        }


        // 当前页面的主组件 
        var app = new Vue({
            el: "#app",
            components: {
                footer1
            },
            beforeMount() { },
            created() { },
            mounted() { },
            beforeUpdate() { },
            updated() { },
            beforeDestroy() { },
            destroyed() { },
            data: {
                name: "Vue.js",
            },
            methods: {
                bbb() { },
                aaa() { },
            },
            computed: {},
            watch: {},
            filters: {},
        });


    </script>
</body>

</html>